/**
 * 函数节流（时间戳版本）
 * @param {Function} fn 节流函数预设函数
 * @param {Number} wait 触发时间间隔 默认0.1s
 * @returns 被节流处理过的函数体
 */
export default function throttle (fn, delay = 100) {
  let timer = null; // 创建一个计时器变量

  return function () {
    const context = this; // 保存当前上下文对象

    if (!timer) {
      // 若没有计时器则立即执行传入的函数并设置计时器
      fn.apply(context);

      timer = setTimeout(() => {
        clearTimeout(timer); // 清除计时器

        timer = null; // 重新将计时器置为空
      }, delay);
    }
  };
}